How can I make this script output each categories item per category [closed]

Posted by Duice352 on Pro Webmasters See other posts from Pro Webmasters or by Duice352
Published on 2012-09-06T15:53:06Z Indexed on 2012/09/06 21:52 UTC
Read the original article Hit count: 156

Filed under:
|
|

Ok so here is the deal currently this script outputs all the products in a parent category as well as the products in the child categories. What i would like to do is seperate the output based on child categories. All the child categories are in the array $children and the string $childs. The parent category is the first array element of $children with the following ones being the actual children. The category names are stored in the database $result as " $cat_name ". I want to first Display the cat_name then the products that fall in that category and then display the next child cat_name and items, ect. Any suggestions of how to manipulate the while loop that cylcles through the rows?

 <?php 

$productsPerRow = 3;
$productsPerPage = 15;

//$productList    = getProductList($catId);
$children = array_merge(array($catId), getChildCategories(NULL, $catId));
$childs = ' (' . implode(', ', $children) . ')';


$sql = "SELECT pd_id, pd_name, pd_price, pd_thumbnail, pd_qty, c.cat_id, c.cat_name
        FROM tbl_product pd, tbl_category c
        WHERE pd.cat_id = c.cat_id AND pd.cat_id IN $childs 
    ORDER BY pd_name";
$result     = dbQuery(getPagingQuery($sql, $productsPerPage));
$pagingLink = getPagingLink($sql, $productsPerPage, "c=$catId");
$numProduct = dbNumRows($result);

// the product images are arranged in a table. to make sure
// each image gets equal space set the cell width here
$columnWidth = (int)(100 / $productsPerRow);

?>

<p><?php if(isset($_GET['m'])){echo "You must select a model first! After you select         
your model you can customize your dragster parts.";} ?> </p>
<p align="center"><?php echo $pagingLink; ?></p>
<table width="100%" border="0" cellspacing="0" cellpadding="20">
<?php 
if ($numProduct > 0 ) {

    $i = 0;
        while ($row = dbFetchAssoc($result)) {
        extract($row);
        if ($pd_thumbnail) {
            $pd_thumbnail =   WEB_ROOT . 'images/product/' 
.$pd_thumbnail;                     } else {
                $pd_thumbnail =  'images/no-image-small.png';
                    }

                    if ($i % $productsPerRow == 0) {
                        echo '<tr>';
                    }

                    // format how we display the price
                    $pd_price = displayAmount($pd_price);

                    echo "<td width=\"$columnWidth%\" align=\"center\"><a href=\"" . $_SERVER['PHP_SELF'] . "?c=$catId&p=$pd_id" . "\"><img src=\"$pd_thumbnail\" border=\"0\"><br>$pd_name</a><br>Price : $pd_price <br> $cat_id - $cat_name";

                    // if the product is no longer in stock, tell the customer
                    if ($pd_qty <= 0) {
                        echo "<br>Out Of Stock";
                    }

                    echo "</td>\r\n";

                    if ($i % $productsPerRow == $productsPerRow - 1) {
                        echo '</tr>';
                    }



    $i += 1;
}


if ($i % $productsPerRow > 0) {
    echo '<td colspan="' . ($productsPerRow - ($i % $productsPerRow)) . '">&nbsp;</td>';
}

© Pro Webmasters or respective owner

Related posts about php

Related posts about html